using System;

namespace octalforty.Syndication.uF
{
    /// <summary>
    /// Represents an <c>hCard</c> microformat.
    /// </summary>
    /// <remarks> 
    /// hCard is a simple, open, distributed format for representing people, companies, organizations, and places, using a 1:1 
    /// representation of the properties and values of the vCard standard (RFC2426 (http://www.ietf.org/rfc/rfc2426.txt)) 
    /// in semantic XHTML.
    /// </remarks>
    public sealed class HCard : Microformat
    {
        #region Private Member Variables
        private String fullName;
        private String emailAddress;
        private String organizationalName;
        #endregion

        #region Public Properties
        /// <summary>
        /// Gets or sets a <see cref="String"/> which contains the name of the 
        /// object the <see cref="HCard"/> represents.
        /// </summary>
        /// <example>John Q. Public, Esq.</example>
        public String FullName
        {
            get { return fullName; }
            set { fullName = value; }
        }

        /// <summary>
        /// Gets or sets a <see cref="String"/> which contains the electronic mail address for 
        /// communication with the object the <see cref="HCard"/> represents.
        /// </summary>
        /// <example>jqpublic@xyz.dom1.com</example>
        public String EmailAddress
        {
            get { return emailAddress; }
            set { emailAddress = value; }
        }

        /// <summary>
        /// Gets or sets a <see cref="String"/> which contains the organizational name and units 
        /// associated with the <see cref="HCard"/>.
        /// </summary>
        public String OrganizationalName
        {
            get { return organizationalName; }
            set { organizationalName = value; }
        }
        #endregion

        /// <summary>
        /// Initializes a new instance of <see cref="HCard"/> class.
        /// </summary>
        public HCard()
        {
        }

        /// <summary>
        /// Initializes a new instance of <see cref="HCard"/> class with a
        /// given full name and email address.
        /// </summary>
        /// <param name="fullName"></param>
        /// <param name="emailAddress"></param>
        public HCard(String fullName, String emailAddress)
        {
            this.fullName = fullName;
            this.emailAddress = emailAddress;
        }
    }
}
